package com.lagou.controller;


import com.lagou.ResquestIp;
import com.lagou.bean.ConsumerComponent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.List;

@Controller
public class IndexController {

    /**
     * @Description: 获取客户端IP地址
     */
    private String getIpAddr(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
            if(ip.equals("127.0.0.1")){
                //根据网卡取本机配置的IP
                InetAddress inet=null;
                try {
                    inet = InetAddress.getLocalHost();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                ip= inet.getHostAddress();
            }
        }
        // 多个代理的情况，第一个IP为客户端真实IP,多个IP按照','分割
        if(ip != null && ip.length() > 15){
            if(ip.indexOf(",")>0){
                ip = ip.substring(0,ip.indexOf(","));
            }
        }
        return ip;
    }

//    @Autowired
//    private TArticleService tArticleService;


    @Autowired
    private HttpServletRequest request;
    @Autowired
    private ConsumerComponent consumerComponent;

    @RequestMapping("/getMethod")
    @ResponseBody
    public String toIndex(){
        String ip = getIpAddr(request);
        ResquestIp.setIp(ip);
        System.out.println("客户端ip："+ip);

        String hello = consumerComponent.sayHello("world", 0);
        System.out.println("result :" + hello);


        return "hello world";
    }



//    @RequestMapping("/toIndex")
//    public String list(){
//
//        return "client/index";
//
//    }


}
